package com.cotasul.persistencia.config;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;



public class GerenciadorConexao {
	
	private static Connection conexao;
	
	static{
		try{
			@SuppressWarnings("unchecked")
			Class<Driver> classe = (Class<Driver>) Class.forName(PropriedadesDeConfiguracao.getInstance().getValorPropriedade(PropriedadesDeConfiguracaoEnum.JDBC_DRIVER));
			DriverManager.registerDriver(classe.newInstance());
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	
	private static void abrirConexao() throws SQLException{
		final String url = PropriedadesDeConfiguracao.getInstance()
		.getValorPropriedade(PropriedadesDeConfiguracaoEnum.JDBC_URL);
		
		final String usuario = PropriedadesDeConfiguracao.getInstance()
		.getValorPropriedade(PropriedadesDeConfiguracaoEnum.JDBC_USER);
		
		final String senha = PropriedadesDeConfiguracao.getInstance()
		.getValorPropriedade(PropriedadesDeConfiguracaoEnum.JDBC_PASS);
		
		conexao = (Connection) DriverManager.getConnection(url, usuario, senha);
		conexao.setAutoCommit(false);
	}
	
	public static Connection getConexao() throws SQLException{
		if (conexao == null || conexao.isClosed()){
			abrirConexao();
		}
		return conexao;
	}	

}
